package com.xiaoshuidi.cloud.module.contract.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * @Description:
 * @author: zhaoyu
 * @date: 2023/5/15
 */
@Data
@Schema(description = "房间合同信息")
public class RoomContractApiRespVO {

	/**
	 * 合同ID
	 */
	@Schema(description = "合同id")
	private Long id;
	/**
	 * 合同状态('pending', '待审核'),
	 ('reject', '已驳回'),
	 ('active', '已生效'),
	 ('disabled_normal', '正常退租'),
	 ('disabled_unnormal', '提前退租'),
	 ('disabled_update', '修改失效'),
	 ('disabled_renew', '续租失效'),
	 ('pending_renew', '续租待生效'),
	 ('renew_approve', '续租待审批'),
	 ('disabled_change', '换房'),
	 ('change_approve', '换房待审批'),
	 ('renew_reject', '续租已驳回'),
	 ('disabled_change', '换房退租'),
	 ('signed_aging', '自动失效'),
	 */
	/**
	 * 合同状态的
	 * pending 待审批 | noSigned 待签约 | active 已生效 | normalEnd 正常结束 | abnormalEnd 非正常结束
	 */
	@Schema(description = "合同状态")
	private String contractStatus;
	/**
	 * 合同节点
	 * new 新签  | renewal 续约 | rentingOut 退租 | exchange 换房
	 */
	@Schema(description = "合同节点")
	private String contractNode;
	/**
	 * 在线签约状态
	 * signed_party_a 待甲方签约 |signed_party_b 待乙方签约  |signed 已签约
	 */
	@Schema(description = "在线签约状态")
	private String signStatus;

	/**
	 * 合同编号
	 */
	@Schema(description = "合同编号")
	private String contractNo;
	/**
	 * 线下合同编号
	 */
	@Schema(description = "纸质合同编号")
	private String offlineNo;
	/**
	 * 开始日期
	 */
	@Schema(description = "合同开始时间")
	private LocalDate startTime;
	/**
	 * 结束日期
	 */
	@Schema(description = "合同结束时间")
	private LocalDate endTime;
	/**
	 * 实际结束日期
	 */
	@Schema(description = "合同实际结束日期")
	private LocalDate actualEndTime;
	/**
	 * 签约时间
	 */
	@Schema(description = "签约时间")
	private LocalDate signedTime;
	/**
	 * 月租金
	 */
	@Schema(description = "月租金额")
	private BigDecimal monthRent;
	/**
	 * 押金
	 */
	@Schema(description = "押金")
	private BigDecimal deposit;
	/**
	 *  付几  |  付款周期
	 */
	@Schema(description = "付几")
	private Integer payMethodF;
	/**
	 * 押几
	 */
	@Schema(description = "押几")
	private Integer payMethodY;
	/**
	 * 收租类型 advanced  提前收租天 | fixed 固定当月日期 日 | prefixed 固定上月日期 日,
	 */
	@Schema(description = "收款日期方式")
	private String rentPayWay;
	/**
	 * 提前收租天数
	 */
	@Schema(description = "收款日期天数")
	private Integer advancedDays;
	/**
	 * 客户来源 1 来电 |2 58同城 | 3 赶集网 | 4 安居客 | 5 官网预约 | 6 微信 | 7 自来客 | 8 转介绍 | 9 中介 | 10 其他 |11 房天下 | 12 豆瓣 | 13 百姓网 | 14 闲鱼 | 15 微博 | 16 官网在线 | 17 运营管理 | 18 手机APP | 19 贝壳
	 */
	@Schema(description = "来源")
	private String source;
	/**
	 * 签约人姓名
	 */
	@Schema(description = "签约人")
	private String signerName;
	/**
	 * 合同发起人姓名（合同创建人）
	 */
	@Schema(description = "合同发起人")
	private String originatorName;
	/**
	 * 备注
	 */
	@Schema(description = "合同备注")
	private String remark;
	/**
	 * 合同附件地址
	 */
	@Schema(description = "合同附件地址")
	private String contractUrl;

	/**
	 * 租客名
	 */
	@Schema(description = "租客姓名")
	private String customerName;
	/**
	 * 租客手机号
	 */
	@Schema(description = "租客手机号码")
	private String customerPhone;
	/**
	 * 证件类型
	 */
	@Schema(description = "证件类型")
	private String customerIdType;
	/**
	 * 证件号码
	 */
	@Schema(description = "证件号码")
	private String customerIdNumber;
	/**
	 * 紧急联系人姓名
	 */
	@Schema(description = "紧急联系人姓名")
	private String emergencyContactName;
	/**
	 * 紧急联系人手机号
	 */
	@Schema(description = "紧急联系人电话")
	private String emergencyContactPhone;
	/**
	 * 乙方联系地址（租客地址）
	 */
	@Schema(description = "租客地址")
	private String renterAddress;
	/**
	 * 租客邮编
	 */
	@Schema(description = "租客邮编")
	private String renterPostalCode;
	/**
	 * 租客邮箱
	 */
	@Schema(description = "租客邮箱")
	private String renterEmail;
	/**
	 * 国籍
	 */
	@Schema(description = "租客国籍")
	private String customerNationality;
	/**
	 * 乙方居住类型 1 单身合租 | 2 非单身合租
	 */
	@Schema(description = "居住类型")
	private String customerHabitancyType;
	/**
	 * 证件附件地址
	 */
	@Schema(description = "证件附件地址")
	private String certificateUrl;

	/**
	 * 合同类型 paper纸质合同 | electronic 电子合同
	 */
	@Schema(description = "合同类型")
	private String contractSort;

	/**
	 * 银行卡号
	 */
	@Schema(description = "银行卡号")
	private String customerCreditCard;

	/**
	 * 所属银行
	 */
	@Schema(description = "所属银行")
	private String customerBank;

	/**
	 * 所属支行
	 */
	@Schema(description = "所属支行")
	private String customerBankArea;

	/**
	 * 紧急联系人关系
	 */
	@Schema(description = "紧急联系人关系")
	private String emergencyContactRelationship;

	/**
	 * 紧急联系人关系
	 */
	@Schema(description = "合同状态中文")
	private String contractStatusStr;

	/**
	 * 合同审批状态
	 * pending 待审批  | pass 审批通过 | reject 审批驳回
	 */
	@Schema(description = "合同审批状态")
	private String approveStatus;

	/**
	 * 客户类型 personal 个人客户 | company 企业客户
	 */
	@Schema(description = "客户类型")
	private String customerType;

	/**
	 * 关联公寓
	 */
	private Long apartmentId;

	/**
	 * 公寓名称
	 */
	private String apartmentName;

	/**
	 * 关联房间
	 */
	private Long roomId;

	/**
	 * 房间名称
	 */
	private String roomName;

	/**
	 * 房间价格
	 */
	private BigDecimal price;
	/**
	 * 合同状态名称
	 */
	private String contractStatusName;

	/**
	 * 合同状态编码
	 */
	private String contractCode;
	/**
	 * 租客学历
	 */
	private String customerEducation;

	/**
	 * 租客岗位
	 */
	private String customerPost;

	/**
	 * 审批流程id
	 */
	private String processInstance;
	/**
	 * 企业客户
	 */
	private Long customerCompanyId;
	/**
	 *来源于哪份企业合同
	 */
	private Long companyContractId;
	/**
	 * 房间全称
	 */
	private String fullRoomName;
	/**
	 * 企业承担方式
	 */
	private Integer orderShareMethod;
	/**
	 * 房间地址
	 */
	private String roomAddress;

}
